Return to start page

Systems/Debug/Library Utilities.j

Code

		
1			/**
2 * This library provides some cheats only usable in debug mode to test your map.
3 * Cheat list:
4 * clear - Clears screen messages for cheating player.
5 * info - Shows some information about selected unit of cheating player.
6 * setlevel - Sets level for selected unit of cheating player.
7 * kill - Kills selected unit of cheating player.
8 * copy - Copies selected unit of cheating player.
9 * giveall - Resets hit points, mana and all ability cooldowns of selected unit of cheating player.
10 * damage - Damages selected unit.
11 * benchmarks - Shows all benchmarks.
12 * units - Shows all units.
13 * items - Shows all items.
14 * destructables - Shows all destructables.
15 * string - Runs string debug.
16 * interface - Runs interface debug.
17 * signal - Runs signal debug.
18 */
19 library ALibrarySystemsDebugUtilities initializer init requires AStructCoreDebugBenchmark, AStructCoreDebugCheat, ALibraryCoreDebugInterface, ALibraryCoreDebugMisc, ALibraryCoreDebugSignal, ALibraryCoreDebugString, ALibraryCoreStringConversion, ALibraryCoreInterfaceSelection
20
21 private function help takes nothing returns nothing
22 debug local player triggerPlayer = GetTriggerPlayer()
23 debug call Print("clear")
24 debug call Print("info")
25 debug call Print("setlevel")
26 debug call Print("kill")
27 debug call Print("copy")
28 debug call Print("giveall")
29 debug call Print("damage ")
30 debug call Print("benchmarks")
31 debug call Print("units")
32 debug call Print("items")
33 debug call Print("destructables")
34 debug call Print("string")
35 debug call Print("interface")
36 debug call Print("signal")
37 debug set triggerPlayer = null
38 endfunction
39
40 private function clear takes nothing returns nothing
41 debug local player triggerPlayer = GetTriggerPlayer()
42 debug call ClearScreenMessagesForPlayer(triggerPlayer)
43 debug set triggerPlayer = null
44 endfunction
45
46 /// @todo Add some information.
47 private function info takes nothing returns nothing
48 debug local player triggerPlayer = GetTriggerPlayer()
49 debug local unit selectedUnit = GetFirstSelectedUnitOfPlayer(triggerPlayer) //ALibraryInterfaceSelection
50 debug if (selectedUnit != null) then
51 debug call Print(StringArg(tr("Name: %s"), GetUnitName(selectedUnit)))
52 debug call Print(RealArg(RealArg(tr("Position: (%r|%r)"), GetUnitX(selectedUnit)), GetUnitY(selectedUnit)))
53 debug call Print(IntegerArg(tr("Level: %i"), GetUnitLevel(selectedUnit)))
54 debug if (IsUnitType(selectedUnit, UNIT_TYPE_HERO)) then
55 debug call Print(IntegerArg(tr("Hero Level: %i"), GetHeroLevel(selectedUnit)))
56 debug endif
57 debug call Print(RealArg(tr("Acquire Range: %r"), GetUnitAcquireRange(selectedUnit)))
58 debug call Print(IntegerArg(tr("Current Order: %i"), GetUnitCurrentOrder(selectedUnit)))
59 debug set selectedUnit = null
60 debug endif
61 debug set triggerPlayer = null
62 endfunction
63
64 private function setlevel takes nothing returns nothing
65 debug local player triggerPlayer = GetTriggerPlayer()
66 debug local string message = GetEventPlayerChatString()
67 debug local unit hero = GetFirstSelectedUnitOfPlayer(triggerPlayer)
68 debug if (hero != null) then
69 debug if (IsUnitType(hero, UNIT_TYPE_HERO)) then
70 debug call SetHeroLevelBJ(hero, S2I(SubString(message, StringLength("setlevel") + 1, StringLength(message))), true)
71 debug else
72 debug call Print("Unit is not a hero.")
73 debug endif
74 debug set hero = null
75 debug endif
76 debug set triggerPlayer = null
77 endfunction
78
79 /// @todo If no unit is selected, kill an item or a destructable
80 private function kill takes nothing returns nothing
81 debug local player triggerPlayer = GetTriggerPlayer()
82 debug local unit selectedUnit = GetFirstSelectedUnitOfPlayer(triggerPlayer)
83 debug if (selectedUnit != null) then
84 debug call KillUnit(selectedUnit)
85 debug set selectedUnit = null
86 debug endif
87 debug set triggerPlayer = null
88 endfunction
89
90 private function copy takes nothing returns nothing
91 debug local player triggerPlayer = GetTriggerPlayer()
92 debug local unit selectedUnit = GetFirstSelectedUnitOfPlayer(triggerPlayer)
93 debug local unit copiedUnit
94 debug if (selectedUnit != null) then
95 debug set copiedUnit = CopyUnit(selectedUnit, GetUnitX(selectedUnit), GetUnitY(selectedUnit), GetUnitFacing(selectedUnit), bj_UNIT_STATE_METHOD_ABSOLUTE)
96 debug set copiedUnit = null
97 debug endif
98 debug set triggerPlayer = null
99 endfunction
100
101 private function giveall takes nothing returns nothing
102 debug local player triggerPlayer = GetTriggerPlayer()
103 debug local unit selectedUnit = GetFirstSelectedUnitOfPlayer(triggerPlayer)
104 debug if (selectedUnit != null) then
105 debug call SetUnitLifePercentBJ(selectedUnit, 100.0)
106 debug call SetUnitManaPercentBJ(selectedUnit, 100.0)
107 debug call UnitResetCooldown(selectedUnit)
108 debug set selectedUnit = null
109 debug endif
110 debug set triggerPlayer = null
111 endfunction
112
113 private function damage takes nothing returns nothing
114 debug local player triggerPlayer = GetTriggerPlayer()
115 debug local unit selectedUnit = GetFirstSelectedUnitOfPlayer(triggerPlayer)
116 debug local real damageAmount
117 debug if (selectedUnit != null) then
118 debug set damageAmount = S2R(SubString(GetEventPlayerChatString(), StringLength("damage"), StringLength(GetEventPlayerChatString())))
119 debug call Print("SubString is " + SubString(GetEventPlayerChatString(), StringLength("damage"), StringLength(GetEventPlayerChatString())))
120 debug if (damageAmount > 0.0) then
121 debug call UnitDamageTargetBJ(null, selectedUnit, damageAmount, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL)
122 debug endif
123 debug set selectedUnit = null
124 debug endif
125 debug set triggerPlayer = null
126 endfunction
127
128 private function benchmarks takes nothing returns nothing
129 debug call ABenchmark.showBenchmarks()
130 endfunction
131
132 static if (A_DEBUG_HANDLES) then
133 private function units takes nothing returns nothing
134 debug call ABenchmark.showUnits()
135 endfunction
136
137 private function items takes nothing returns nothing
138 debug call ABenchmark.showItems()
139 endfunction
140
141 private function destructables takes nothing returns nothing
142 debug call ABenchmark.showDestructables()
143 endfunction
144 endif
145
146 private function init takes nothing returns nothing
147 debug call ACheat.create("help", true, help)
148 debug call ACheat.create("clear", true, clear)
149 debug call ACheat.create("info", true, info)
150 debug call ACheat.create("setlevel", false, setlevel)
151 debug call ACheat.create("kill", true, kill)
152 debug call ACheat.create("copy", true, copy)
153 debug call ACheat.create("giveall", true, giveall)
154 debug call ACheat.create("damage", false, damage)
155 debug call ACheat.create("benchmarks", true, benchmarks)
156
157 static if (A_DEBUG_HANDLES) then
158 debug call ACheat.create("units", true, units)
159 debug call ACheat.create("items", true, items)
160 debug call ACheat.create("destructables", true, destructables)
161 endif
162
163 debug call ACheat.create("string", true, AStringDebug)
164 debug call ACheat.create("interface", true, AInterfaceDebug)
165 debug call ACheat.create("signal", true, ASignalDebug)
166 endfunction
167
168 endlibrary